From bc1cd6c5cbff83f2d227b3811ded17b7439192b9 Mon Sep 17 00:00:00 2001 From: Benjamin Otte Date: Mon, 6 Sep 2010 12:19:58 +0200 Subject: [PATCH] treeview: Draw empty tree view with Cairo --- gtk/gtktreeview.c | 22 +++++++++------------- 1 file changed, 9 insertions(+), 13 deletions(-) diff --git a/gtk/gtktreeview.c b/gtk/gtktreeview.c index 937aaf5097..92931863ba 100644 --- a/gtk/gtktreeview.c +++ b/gtk/gtktreeview.c @@ -4229,7 +4229,7 @@ invalidate_empty_focus (GtkTreeView *tree_view) * is empty. */ static void -draw_empty_focus (GtkTreeView *tree_view, GdkRectangle *clip_area) +draw_empty_focus (GtkTreeView *tree_view, cairo_t *cr) { GtkWidget *widget = GTK_WIDGET (tree_view); gint w, h; @@ -4243,10 +4243,9 @@ draw_empty_focus (GtkTreeView *tree_view, GdkRectangle *clip_area) h -= 2; if (w > 0 && h > 0) - gtk_paint_focus (gtk_widget_get_style (widget), - tree_view->priv->bin_window, + gtk_cairo_paint_focus (gtk_widget_get_style (widget), + cr, gtk_widget_get_state (widget), - clip_area, widget, NULL, 1, 1, w, h); @@ -4397,22 +4396,19 @@ gtk_tree_view_bin_expose (GtkWidget *widget, "focus-line-width", &focus_line_width, NULL); + cr = gdk_cairo_create (event->window); + gdk_cairo_region (cr, event->region); + cairo_clip (cr); + if (tree_view->priv->tree == NULL) { - draw_empty_focus (tree_view, &event->area); + draw_empty_focus (tree_view, cr); + cairo_destroy (cr); return TRUE; } - /* clip event->area to the visible area */ - if (event->area.height < 0) - return TRUE; - validate_visible_area (tree_view); - cr = gdk_cairo_create (event->window); - gdk_cairo_region (cr, event->region); - cairo_clip (cr); - style = gtk_widget_get_style (widget); new_y = TREE_WINDOW_Y_TO_RBTREE_Y (tree_view, event->area.y); -- 2.30.2